<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Source</name>
    </assembly>
    <members>
        <member name="T:MemoryMessageStore`1">
            <summary>
            Simple in-memory message store.
            </summary>
        </member>
        <member name="T:IMessageStore`1">
            <summary>
            Interface implemented by a message stores.
            </summary>
            <typeparam name="TBaseMessage">The common base type or interface implemented by message payloads.</typeparam>
            <nuget id="netfx-Patterns.MessageStore"/>
        </member>
        <member name="M:IMessageStore`1.Save(`0,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Persists the message and headers.
            </summary>
            <param name="message">The message to persist.</param>
            <param name="headers">The headers associated with the message.</param>
        </member>
        <member name="M:IMessageStore`1.Query(MessageStoreQueryCriteria)">
            <summary>
            Queries the store for messages that match the given criteria.
            </summary>
            <remarks>
            Store implementations are advised to provide full support for the 
            specified criteria, but aren't required to.
            <para>
            The <see cref="M:MessageStoreQueryExtension.Query``1(IMessageStore{``0})"/> extension method  
            can be used with any message store implementation, and provides a fluent 
            API to build the criteria object
            </para>
            </remarks>
        </member>
        <member name="M:MemoryMessageStore`1.StoredMessageCriteriaBuilder.Build">
            <summary>
            Builds the expression for the criteria.
            </summary>
        </member>
        <member name="T:MessageStoreQueryCriteria">
            <summary>
            Represents the filter criteria for a message store query.
            </summary>
            <nuget id="netfx-Patterns.MessageStore"/>
        </member>
        <member name="M:MessageStoreQueryCriteria.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:MessageStoreQueryCriteria"/> class.
            </summary>
        </member>
        <member name="P:MessageStoreQueryCriteria.MessageTypes">
            <summary>
            List of message type filters. All types added are OR'ed with the 
            others (i.e. <c>MessageType == InvalidServerAddress OR MessageType == ServerMemoryLow</c>).
            </summary>
        </member>
        <member name="P:MessageStoreQueryCriteria.Since">
            <summary>
            Filters messages that happened after the given starting date.
            </summary>
        </member>
        <member name="P:MessageStoreQueryCriteria.Until">
            <summary>
            Filters messages that happened before the given ending date.
            </summary>
        </member>
        <member name="P:MessageStoreQueryCriteria.IsExclusiveRange">
            <summary>
            If set to <see langword="true"/>, <see cref="P:MessageStoreQueryCriteria.Since"/> and <see cref="P:MessageStoreQueryCriteria.Until"/> should 
            be considered as exclusive ranges (excludes values with a matching date). 
            Defaults to <see langword="false"/>, meaning that ranges are inclusive by default.
            </summary>
        </member>
        <member name="T:MessageStoreQueryExtension">
            <summary>
            Provides the entry point <see cref="M:MessageStoreQueryExtension.Query``1(IMessageStore{``0})"/> extension method 
            for an <see cref="T:IMessageStore`1"/> for a fluent API 
            that makes building the message query criteria easier.
            </summary>
            <nuget id="netfx-Patterns.MessageStore"/>
        </member>
        <member name="M:MessageStoreQueryExtension.Query``1(IMessageStore{``0})">
            <summary>
            Allows building a query against the message store 
            using a fluent API and automatically executing 
            it to messages that match built criteria upon 
            query enumeration or explicit execution.
            </summary>
            <typeparam name="TBaseMessage">The base type or interface implemented by log entries in the system.</typeparam>
            <param name="store">The audit log store.</param>
        </member>
        <member name="T:MessageStoreQueryExtension.IQuery`1">
            <summary>
            Provides a fluent API to filter messages from a message store. 
            </summary>
            <remarks>
            This interface is returned from the <see cref="M:MessageStoreQueryExtension.Query``1(IMessageStore{``0})"/> 
            extension method for <see cref="T:IMessageStore`1"/>.
            </remarks>
            <typeparam name="TBaseMessage">The base type or interface implemented by events in the system.</typeparam>
            <nuget id="netfx-Patterns.MessageStore"/>
        </member>
        <member name="M:MessageStoreQueryExtension.IQuery`1.Execute">
            <summary>
            Executes the query built using the fluent API 
            against the underlying store.
            </summary>
        </member>
        <member name="M:MessageStoreQueryExtension.IQuery`1.OfType``1">
            <summary>
            Includes messages in the result that are assignable to the given type. Can be called 
            multiple times and will filter for any of the specified types (OR operator).
            </summary>
            <typeparam name="TMessage">The type of messages to include.</typeparam>
        </member>
        <member name="M:MessageStoreQueryExtension.IQuery`1.Since(System.DateTime)">
            <summary>
            Includes messages that happened after the given starting date.
            </summary>
            <param name="when">The starting date to filter by.</param>
            <remarks>
            By default, includes messages with the given date, unless the 
            <see cref="M:MessageStoreQueryExtension.IQuery`1.ExclusiveRange"/> is called to make the range exclusive.
            </remarks>
        </member>
        <member name="M:MessageStoreQueryExtension.IQuery`1.Until(System.DateTime)">
            <summary>
            Includes events that happened before the given ending date.
            </summary>
            <param name="when">The ending date to filter by.</param>
            <remarks>
            By default, includes messages with the given date, unless the 
            <see cref="M:MessageStoreQueryExtension.IQuery`1.ExclusiveRange"/> is called to make the range exclusive.
            </remarks>
        </member>
        <member name="M:MessageStoreQueryExtension.IQuery`1.ExclusiveRange">
            <summary>
            Makes the configured <see cref="M:MessageStoreQueryExtension.IQuery`1.Since(System.DateTime)"/> and/or <see cref="M:MessageStoreQueryExtension.IQuery`1.Until(System.DateTime)"/> dates 
            exclusive, changing the default behavior which is to be inclusive.
            </summary>
        </member>
        <member name="T:Guard">
            <summary>
            Common guard class for argument validation.
            </summary>
        </member>
        <member name="M:Guard.NotNull``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Ensures the given <paramref name="value"/> is not null.
            Throws <see cref="T:System.ArgumentNullException"/> otherwise.
            </summary>
        </member>
        <member name="M:Guard.NotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}},System.String)">
            <summary>
            Ensures the given string <paramref name="value"/> is not null or empty.
            Throws <see cref="T:System.ArgumentNullException"/> in the first case, or 
            <see cref="T:System.ArgumentException"/> in the latter.
            </summary>
        </member>
        <member name="T:ExpressionCombiner">
            <summary>
            Combines linq expressions using logic operators And and Or.
            </summary>
            <remarks>
            This code was taken from the MSDN Blog meek: LINQ to Entities: Combining Predicates
            http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx
            </remarks>
            <nuget id="netfx-System.Linq.Expressions.ExpressionCombiner" />
        </member>
    </members>
</doc>
